package com.yfp.operation.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 商城订单
 * @TableName mall_order
 */
@TableName(value ="mall_order")
@Data
public class MallOrder implements Serializable {
    /**
     * 主键ID
     */
    @TableId
    private Long id;

    /**
     * 订单编号
     */
    @Schema(description = "订单编号")
    private String orderSn;

    /**
     * 订单金额
     */
    @Schema(description = "订单金额")
    private BigDecimal price;

    /**
     * 订单状态1待支付2待收货3已完成4已退款5已取消6退款中7待发货
     */
    @Schema(description = "订单状态1待支付2待收货3已完成4已退款5已取消6退款中7待发货")
    private Integer status;

    /**
     * 物流状态0：快递收件(揽件)1.在途中 2.正在派件 3.已签收 4.派送失败 5.疑难件 6.退件签收
     */
    @Schema(description = "物流状态0：快递收件(揽件)1.在途中 2.正在派件 3.已签收 4.派送失败 5.疑难件 6.退件签收")
    private Integer logisticsStatus;

    /**
     * 客户ID
     */
    @Schema(description = "客户ID")
    private String clientId;

    /**
     * 支付时间
     */
    @Schema(description = "支付时间")
    private Date payTime;

    /**
     * 预支付交易会话标识
     */
    @Schema(description = "预支付交易会话标识")
    private String prepayId;

    /**
     * 支付订单编号
     */
    @Schema(description = "支付订单编号")
    private String paySn;

    /**
     * 支付金额
     */
    @Schema(description = "支付金额")
    private BigDecimal payPrice;

    /**
     * 支付积分
     */
    @Schema(description = "支付积分")
    private Long integral;

    /**
     * 物流编号
     */
    @Schema(description = "物流编号")
    private String logisticsSn;

    /**
     * 收货地址
     */
    @Schema(description = "收货地址")
    private String address;

    /**
     * 收货手机号码
     */
    @Schema(description = "收货手机号码")
    private String mobile;

    /**
     * 物流公司名称
     */
    @Schema(description = "物流公司名称")
    private String logisticsName;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Date createTime;

    /**
     * 编辑时间
     */
    @Schema(description = "编辑时间")
    private Date updateTime;

    /**
     * 取消时间
     */
    @Schema(description = "取消时间")
    private Date cancelTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**
     * 商品名称
     */
    @TableField(exist = false)
    private String productName;

}